using System;
using System.Text;

namespace Headsight.BPMN2WF.BPMN.Model
{
    /// <summary>
    /// Very early implementation for representing <i>BPMN properties/parameters</i>.
    /// </summary>
    public class BPMNArgument
    {
        public BPMNArgument(String id, Type type) : this(id, type, null) { }

        public BPMNArgument(String id, Type type, String expression)
        {
            Id = id;
            Type = type;
            Expression = expression;
        }

        public String Id { get; private set; }

        public Type Type { get; private set; }

        public String Expression { get; private set; }

        public override string ToString()
        {
            var result = new StringBuilder();

            result.Append(GetType().Name);
            result.Append("[");
            result.Append("Id:").Append(Id);
            result.Append(",");
            result.Append("Type:").Append(Type);
            result.Append(",");
            result.Append("Expression:").Append(Expression);
            result.Append("]");

            return result.ToString();
        }
    }
}